Subdivision surfaces are polygon mesh surfaces generated from a control mesh via an iterative process that refines the mesh based on templates. The limit surface corresponding to the control mesh represents a smooth surface. After a number of iterations in which the control mesh is refined, the resulting mesh approaches the limit surface. A distinction is made between “interpolating” subdivision schemes and “approximating” subdivision schemes. In interpolating schemes, after subdivision, control points of the original mesh and the newly-generated points are interpolated based on the existing points. In approximating schemes, the limit surfaces approximate the control mesh, and after subdivision, the newly-generated points are not in the control mesh.